{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "任务：基于zgpa_train.csv数据，建立RNN模型，预测股价：\n",
    "1.完成数据预处理，将序列数据转化为可用于RNN输入的数据\n",
    "2.对新数据zgpa_test.csv进行预测，可视化结果\n",
    "3.存储预测结果，并观察局部预测结果\n",
    "备注：模型结构：单层RNN，输出有5个神经元；每次使用前8个数据预测第9个数据"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "@Author  : Flare Zhao\n",
    "@Email: 454209979@qq.com\n",
    "@QQ讨论群：530533630  申请加群的验证信息为订单号（粘贴号码数字即可）\n",
    "@很多小伙伴对于AI应用于股票投资很感兴趣，老师专门写了一篇手记，感性的小伙伴可以学习一下http://www.imooc.com/article/301021"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>30.57</td>\n",
       "      <td>30.57</td>\n",
       "      <td>28.63</td>\n",
       "      <td>28.78</td>\n",
       "      <td>70997200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>28.41</td>\n",
       "      <td>29.54</td>\n",
       "      <td>28.23</td>\n",
       "      <td>29.23</td>\n",
       "      <td>87498504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>29.03</td>\n",
       "      <td>29.39</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.26</td>\n",
       "      <td>48012112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2016-01-07</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.25</td>\n",
       "      <td>27.73</td>\n",
       "      <td>28.50</td>\n",
       "      <td>23647604</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2016-01-08</td>\n",
       "      <td>28.73</td>\n",
       "      <td>29.18</td>\n",
       "      <td>27.63</td>\n",
       "      <td>28.67</td>\n",
       "      <td>98239664</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         date   open   high    low  close    volume\n",
       "0  2016-01-04  30.57  30.57  28.63  28.78  70997200\n",
       "1  2016-01-05  28.41  29.54  28.23  29.23  87498504\n",
       "2  2016-01-06  29.03  29.39  28.73  29.26  48012112\n",
       "3  2016-01-07  28.73  29.25  27.73  28.50  23647604\n",
       "4  2016-01-08  28.73  29.18  27.63  28.67  98239664"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "data = pd.read_csv('zgpa_train.csv')\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    28.78\n",
       "1    29.23\n",
       "2    29.26\n",
       "3    28.50\n",
       "4    28.67\n",
       "Name: close, dtype: float64"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "price = data.loc[:,'close']\n",
    "price.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0      0.383273\n",
      "1      0.389266\n",
      "2      0.389666\n",
      "3      0.379545\n",
      "4      0.381808\n",
      "         ...   \n",
      "726    0.751099\n",
      "727    0.750566\n",
      "728    0.738447\n",
      "729    0.733120\n",
      "730    0.722466\n",
      "Name: close, Length: 731, dtype: float64\n"
     ]
    }
   ],
   "source": [
    "#归一化处理\n",
    "price_norm = price/max(price)\n",
    "print(price_norm)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib import pyplot as plt\n",
    "fig1 = plt.figure(figsize=(8,5))\n",
    "plt.plot(price)\n",
    "plt.title('close price')\n",
    "plt.xlabel('time')\n",
    "plt.ylabel('price')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#define X and y\n",
    "#define method to extract X and y\n",
    "def extract_data(data,time_step):\n",
    "    X = []\n",
    "    y = []\n",
    "    #0,1,2,3...9:10个样本；time_step=8;0,1...7;1,2...8;2,3...9三组（两组样本）\n",
    "    for i in range(len(data)-time_step):\n",
    "        X.append([a for a in data[i:i+time_step]])\n",
    "        y.append(data[i+time_step])\n",
    "    X = np.array(X)\n",
    "    X = X.reshape(X.shape[0],X.shape[1],1)\n",
    "    return X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "time_step = 8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.38327341]\n",
      " [0.38926621]\n",
      " [0.38966573]\n",
      " [0.37954455]\n",
      " [0.3818085 ]\n",
      " [0.35637235]\n",
      " [0.35876948]\n",
      " [0.35583966]]\n",
      "[0.3558396590757757, 0.3453189505926222, 0.3435876947662805, 0.34944732987082167, 0.33639632441070716, 0.33133573045678516, 0.3322679451325076, 0.33280063923292047, 0.3190837661472899, 0.31895059262218667, 0.32001598082301236, 0.3317352510320948, 0.3230789719003862, 0.3289386070049274, 0.3245438806765215, 0.325476095352244, 0.3248102277267279, 0.3217472366493541, 0.33093620988147554, 0.32987082168064985, 0.32813956585430815, 0.3282727393794113, 0.34225595951524834, 0.33599680383539754, 0.3347982421094686, 0.31548808096950326, 0.31735251032094813, 0.3161539485950193, 0.3194832867225995, 0.3317352510320948, 0.334398721534159, 0.3499800239712345, 0.34332134771607403, 0.34665068584365427, 0.34771607404447996, 0.3391929684378745, 0.3431881741909708, 0.34412038886669327, 0.3474497269942735, 0.3577040884272206, 0.3559728326008789, 0.35757091490211745, 0.36702623518444527, 0.357304567851911, 0.3594353442535623, 0.35330936209881475, 0.35677187375149816, 0.34878146224530565, 0.3459848182181382, 0.3558396590757757, 0.3534425356239179, 0.35490744440005323, 0.3559728326008789, 0.35251032094819545, 0.34758290051937674, 0.34478625649220934, 0.34944732987082167, 0.3499800239712345, 0.35477427087495006, 0.35623917965108537, 0.3558396590757757, 0.3531761885737115, 0.35504061792515645, 0.35876947662804637, 0.35890265015314954, 0.3615661206552137, 0.3602343854041816, 0.3611666000799041, 0.3594353442535623, 0.3585031295778399, 0.35650552670129176, 0.35477427087495006, 0.35504061792515645, 0.3553069649753629, 0.34798242109468636, 0.34478625649220934, 0.34518577706751896, 0.3459848182181382, 0.3521108003728859, 0.35224397389798906, 0.35077906512185375, 0.34944732987082167, 0.3534425356239179, 0.35370888267412437, 0.35357570914902114, 0.35370888267412437, 0.3511785856971634, 0.35077906512185375, 0.35104541217206015, 0.3506458915967505, 0.35477427087495006, 0.36556132640831, 0.359834864828872, 0.35876947662804637, 0.3605007324543881, 0.35743774137701423, 0.35783726195232385, 0.3579704354774271, 0.35330936209881475, 0.3557064855506725, 0.3557064855506725, 0.3555733120255693, 0.3557064855506725, 0.35757091490211745, 0.35677187375149816, 0.3570382208017046, 0.3559728326008789, 0.3499800239712345, 0.3517112797975762, 0.35397522972433076, 0.3581036090025303, 0.35650552670129176, 0.3583699560527367, 0.36183246770542016, 0.3615661206552137, 0.3605007324543881, 0.35996803835397523, 0.3577040884272206, 0.35783726195232385, 0.3660940205087228, 0.3667598881342389, 0.36715940870954855, 0.36849114396058064, 0.3698228792116127, 0.36569449993341324, 0.3647622852576908, 0.3679584498601678, 0.36462911173258755, 0.36462911173258755, 0.36755892928485817, 0.3711546144626448, 0.3666267146091357, 0.36556132640831, 0.3643627646823811, 0.3643627646823811, 0.3630310294313491, 0.3626315088560394, 0.3630310294313491, 0.36422959115727793, 0.36782527633506457, 0.36782527633506457, 0.3711546144626448, 0.3803435876947662, 0.3947263284059129, 0.38620322279930747, 0.38686909042482354, 0.39299507257957117, 0.3941936343055001, 0.3933945931548808, 0.3984551871088028, 0.3916633373285391, 0.38846717272606207, 0.38846717272606207, 0.3907311226528166, 0.39006525502730055, 0.3901984285524038, 0.3921960314289519, 0.3987215341590092, 0.40005326941004127, 0.40511386336396327, 0.4060460780396857, 0.4083100279664403, 0.4093754161672659, 0.40484751631375676, 0.3995205753096284, 0.39392728725529363, 0.40284991343720866, 0.4012518311359701, 0.39885470768411235, 0.4033826075376215, 0.401784525236383, 0.3949926754561193, 0.3947263284059129, 0.3917965108536423, 0.3924623784791583, 0.3920628579038487, 0.3979224930083899, 0.3949926754561193, 0.39392728725529363, 0.39153016380343586, 0.39139699027833263, 0.3891330403515781, 0.39259555200426155, 0.39153016380343586, 0.3917965108536423, 0.39286189905446794, 0.3964575842322546, 0.3972566253828738, 0.3955253695565321, 0.3924623784791583, 0.3969902783326674, 0.3980556665334931, 0.4040484751631375, 0.3980556665334931, 0.40284991343720866, 0.4023172193367958, 0.40311626048741506, 0.4032494340125183, 0.3993874017845252, 0.40245039286189904, 0.40311626048741506, 0.40258356638700227, 0.40271673991210544, 0.40351578106272473, 0.4032494340125183, 0.4033826075376215, 0.41523505127180715, 0.4181648688240777, 0.41630043947263284, 0.422160074577174, 0.42695432148088963, 0.424690371554135, 0.42682114795578635, 0.42096151285124517, 0.422160074577174, 0.42016247170062593, 0.4200292981755227, 0.4188307364495938, 0.42269276867758687, 0.4232254627779997, 0.42801970968171527, 0.4285524037821281, 0.42522306565454787, 0.43028365960846987, 0.41123984551871084, 0.40964176321747237, 0.4085763750166467, 0.3987215341590092, 0.3997869223598348, 0.4001864429351445, 0.39965374883473165, 0.40484751631375676, 0.40671194566520175, 0.40711146624051137, 0.40498068983886004, 0.4089758955919563, 0.41230523371953653, 0.4119057131442269, 0.4129711013450526, 0.4091090691170595, 0.40884272206685307, 0.4063124250898921, 0.4063124250898921, 0.4060460780396857, 0.410707151418298, 0.4190970834998002, 0.41630043947263284, 0.41936343055000663, 0.41723265414835525, 0.4200292981755227, 0.41923025702490346, 0.418963909974697, 0.42229324810227725, 0.4233586363031029, 0.41150619256891724, 0.41576774537221994, 0.4173658276734585, 0.4168331335730457, 0.41803169529897455, 0.41923025702490346, 0.4206951658010387, 0.4178985217738713, 0.42082833932614194, 0.4205619922759355, 0.4200292981755227, 0.4274870155813024, 0.42682114795578635, 0.4274870155813024, 0.42349180982820617, 0.42402450392861896, 0.42082833932614194, 0.4196297776002131, 0.4186975629244906, 0.4147023571713943, 0.4145691836462911, 0.4143028365960847, 0.4160340924224264, 0.41416966307098146, 0.4136369689705686, 0.41123984551871084, 0.4161672659475296, 0.41576774537221994, 0.4160340924224264, 0.4174990011985617, 0.413237448395259, 0.4143028365960847, 0.42016247170062593, 0.41656678652283924, 0.4241576774537222, 0.42389133040351573, 0.4264216273804768, 0.4262884538553735, 0.42695432148088963, 0.42655480090557996, 0.43001731255826336, 0.43121587428419234, 0.42935144493274735, 0.4245571980290318, 0.42255959515248365, 0.4190970834998002, 0.41669996004794246, 0.41523505127180715, 0.415101877746704, 0.4168331335730457, 0.412571580769743, 0.410041283792782, 0.413903316020775, 0.41776534824876815, 0.4188307364495938, 0.4229591157277933, 0.43667598881342384, 0.4408043680916234, 0.4426687974430683, 0.44200292981755224, 0.44320149154348115, 0.4408043680916234, 0.4333466506858436, 0.44040484751631376, 0.443068318018378, 0.46770542016247163, 0.46677320548674917, 0.4824876814489279, 0.4818218138234119, 0.4843521108003728, 0.47542948461845785, 0.478092955120522, 0.4832867225995472, 0.5076574776934345, 0.5120522040218405, 0.5101877746703956, 0.542948461845785, 0.5388200825675855, 0.5373551737914503, 0.5493407910507391, 0.535890265015315, 0.5320282327873219, 0.5501398322013584, 0.5494739645758423, 0.5713144226927687, 0.5782394459981356, 0.5887601544812892, 0.5822346517512318, 0.5658543081635371, 0.5521374350779065, 0.5590624583832733, 0.5838327340524704, 0.5777067518977227, 0.5954188307364496, 0.5915567985084565, 0.5992808629644426, 0.5992808629644426, 0.6019443334665069, 0.5844986016779864, 0.6024770275669197, 0.5978159541883074, 0.5888933280063923, 0.575309628445865, 0.6086030097216674, 0.6215208416566786, 0.6164602477027566, 0.6180583300039951, 0.6267146091357039, 0.6184578505793048, 0.6320415501398322, 0.6472233320015981, 0.6622719403382606, 0.6565454787588226, 0.6614728991876415, 0.6637368491143961, 0.6364362764682381, 0.6450925555999467, 0.6410973498468504, 0.6355040617925156, 0.6417632174723664, 0.6355040617925156, 0.6372353176188573, 0.6749234252230656, 0.6641363696897056, 0.6492209348781462, 0.6361699294180317, 0.6412305233719536, 0.6429617791982953, 0.6377680117192702, 0.6200559328805434, 0.6047409774936742, 0.6168597682780663, 0.6223198828072979, 0.6264482620854973, 0.624983353309362, 0.6525502730057264, 0.6506858436542815, 0.679584498601678, 0.6822479691037421, 0.6785191104008523, 0.6879744306831801, 0.6929018511119989, 0.7043547742708749, 0.6956984951391664, 0.6906379011852444, 0.6925023305366893, 0.6855773072313224, 0.7007590890930883, 0.6889066453589026, 0.6823811426288454, 0.6838460514049807, 0.67012917831935, 0.6810494073778133, 0.6845119190304967, 0.6705286988946597, 0.6620055932880543, 0.6609402050872286, 0.66307098148888, 0.658010387534958, 0.6678652283925955, 0.670795045944866, 0.6723931282461046, 0.6735916899720336, 0.6649354108403249, 0.6667998401917699, 0.6723931282461046, 0.6803835397522973, 0.6825143161539485, 0.6877080836329738, 0.7116793181515514, 0.7112797975762417, 0.7124783593021707, 0.7227327207351179, 0.7365827673458516, 0.7447063523771474, 0.7371154614462645, 0.7485683846051405, 0.7528299374084432, 0.7512318551072046, 0.7686775868957251, 0.8025036622719403, 0.8042349180982821, 0.8082301238513783, 0.8050339592489013, 0.8053003062991076, 0.8094286855773072, 0.803569050472766, 0.8216806498868024, 0.8115594619789586, 0.8344653082967105, 0.8818750832334531, 0.8853375948861366, 0.8889332800639232, 0.8726861100013317, 0.9234252230656546, 0.9535224397389798, 0.9593820748435211, 0.9957384471966972, 0.9825542682114795, 0.940870954854175, 0.9448661606072712, 0.9306165934212277, 0.9196963643627647, 0.9155679850845652, 0.8822746038087628, 0.8580370222399788, 0.8752164069782926, 0.8993208150219736, 0.875349580503396, 0.865228392595552, 0.9031828472499666, 0.9266213876681315, 0.8994539885470769, 0.9115727793314689, 0.8967905180450126, 0.8884005859635103, 0.8922626181915035, 0.9310161139965374, 0.9358103609002529, 0.9487281928352642, 0.9368757491010786, 0.9387401784525236, 0.9358103609002529, 0.8880010653882009, 0.8911972299906779, 0.8830736449593821, 0.9178319350113198, 0.8962578239445997, 0.8990544679717672, 0.895192435743774, 0.8834731655346917, 0.9082434412038887, 0.9062458383273404, 0.918630976161939, 0.9420695165801037, 0.9852177387135438, 0.9873485151151951, 0.9810893594353443, 0.9846850446131309, 0.9844186975629244, 0.9997336529497934, 1.0, 0.9691037421760553, 0.9537887867891863, 0.9645758423225463, 0.9280862964442668, 0.9283526434944732, 0.9509921427620188, 0.9563190837661473, 0.9633772805966174, 0.9593820748435211, 0.9335464109734983, 0.9017179384738313, 0.8698894659741642, 0.8091623385271007, 0.8162205353575709, 0.843654281528832, 0.8685577307231321, 0.8802770009322146, 0.8918630976161939, 0.8939938740178451, 0.8808096950326275, 0.8535091223864696, 0.8690904248235451, 0.8524437341856439, 0.855107204687708, 0.8742841923025703, 0.8670928219469969, 0.8905313623651618, 0.895192435743774, 0.898255426821148, 0.8756159275536023, 0.8676255160474098, 0.8898654947396456, 0.8901318417898522, 0.9340791050739112, 0.9378079637768012, 0.9342122785990146, 0.9216939672393127, 0.8873351977626847, 0.8604341456918364, 0.8588360633905978, 0.822080170462112, 0.8352643494473299, 0.8208816087361832, 0.8122253296044746, 0.8102277267279265, 0.8107604208283393, 0.8295378878678918, 0.8600346251165267, 0.8523105606605407, 0.8396590757757357, 0.8324677054201625, 0.8074310827007591, 0.7918497802636836, 0.7969103742176056, 0.8098282061526169, 0.8054334798242109, 0.8166200559328806, 0.8375282993740844, 0.8234119057131442, 0.7917166067385804, 0.7620189106405646, 0.7680117192702091, 0.7693434545212412, 0.7596217871887069, 0.7660141163936609, 0.7911839126381675, 0.7894526568118257, 0.7925156478891996, 0.7914502596883739, 0.8047676121986949, 0.8030363563723532, 0.7875882274603808, 0.7768011719270208, 0.7906512185377547, 0.7989079770941536, 0.7902516979624451, 0.7736050073245438, 0.7664136369689705, 0.77054201624717, 0.7834598481821813, 0.7818617658809428, 0.7588227460380875, 0.7785324277533626, 0.7720069250233054, 0.7971767212678119, 0.8111599414036489, 0.8009055799707018, 0.8092955120522041, 0.7979757624184312, 0.8064988680250366, 0.8180849647090158, 0.8160873618324677, 0.8252763350645891, 0.82780663204155, 0.7939805566653348, 0.7907843920628579, 0.7806632041550139, 0.7803968571048076, 0.7633506458915967, 0.7560261020109202, 0.7328539086429617, 0.7239312824610467, 0.7472366493541084, 0.70249034491943, 0.7174057797309894, 0.7064855506725263, 0.7066187241976295, 0.725396191237182, 0.7512318551072046, 0.74190970834998, 0.7273937941137302, 0.7445731788520441, 0.7467039552536955, 0.7357837261952324, 0.7397789319483286, 0.7369822879211613, 0.7489679051804501, 0.7773338660274337, 0.7805300306299108, 0.7893194832867226, 0.7949127713410573, 0.7768011719270208, 0.7777333866027433, 0.7869223598348648, 0.7874550539352777, 0.7621520841656678, 0.7429750965508056, 0.7371154614462645, 0.7372486349713676, 0.7602876548142229, 0.7445731788520441, 0.7744040484751631, 0.7720069250233054, 0.7601544812891197, 0.7534958050339592, 0.7265947529631109, 0.7259288853375948, 0.7206019443334665, 0.7369822879211613, 0.758423225462778, 0.7785324277533626, 0.7945132507657476, 0.7990411506192568, 0.8123585031295778, 0.8047676121986949, 0.8062325209748301, 0.8082301238513783, 0.8058330003995205, 0.8025036622719403, 0.8300705819683046, 0.8034358769476627, 0.7919829537887867, 0.8114262884538553, 0.8014382740711147, 0.7967772006925022, 0.7823944599813557, 0.8063656944999333, 0.8183513117592223, 0.8078306032760686, 0.8292715408176854, 0.8429884139033159, 0.8383273405247037, 0.874151018777467, 0.8701558130243707, 0.8804101744573178, 0.8702889865494738, 0.8876015448128912, 0.8380609934744973, 0.8409908110267679, 0.8363297376481554, 0.7990411506192568, 0.8259422026901052, 0.8170195765081901, 0.8276734585164469, 0.8298042349180983, 0.8070315621254495, 0.8492475695831668, 0.8800106538820082, 0.8477826608070315, 0.8576375016646691, 0.8630976161939007, 0.8481821813823411, 0.801038753495805, 0.8116926355040618, 0.8227460380876281, 0.8316686642695432, 0.8722865894260221, 0.862032227993075, 0.8649620455453456, 0.8559062458383272, 0.8583033692901851, 0.8359302170728459, 0.8364629111732588, 0.841123984551871, 0.8270075908909309, 0.8423225462777999, 0.844320149154348, 0.8505793048341989, 0.8290051937674789, 0.82780663204155, 0.8162205353575709, 0.8095618591024104, 0.8170195765081901, 0.8158210147822612, 0.8246104674390731, 0.8150219736316421, 0.8208816087361832, 0.8408576375016646, 0.8395259022506325, 0.8310027966440271, 0.814356106006126, 0.814356106006126, 0.8034358769476627, 0.8033027034225596, 0.8071647356505526, 0.8170195765081901, 0.8002397123451858, 0.7913170861632707, 0.7857237981089359, 0.7760021307764017, 0.7610866959648421, 0.7522972433080304, 0.7510986815821015, 0.7505659874816886, 0.7384471966972966, 0.7331202556931681, 0.7224663736849114]\n"
     ]
    }
   ],
   "source": [
    "#define X and y\n",
    "X,y = extract_data(price_norm,time_step)\n",
    "print(X[0,:,:])\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(723, 8, 1) 723\n"
     ]
    }
   ],
   "source": [
    "print(X.shape,len(y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "simple_rnn_1 (SimpleRNN)     (None, 5)                 35        \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1)                 6         \n",
      "=================================================================\n",
      "Total params: 41\n",
      "Trainable params: 41\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "#set up the model\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, SimpleRNN\n",
    "model = Sequential()\n",
    "#add RNN layer\n",
    "model.add(SimpleRNN(units=5, input_shape=(time_step,1),activation='relu'))\n",
    "#add output layer\n",
    "model.add(Dense(units=1,activation='linear'))\n",
    "#configure the model\n",
    "model.compile(optimizer='adam',loss='mean_squared_error')\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "723/723 [==============================] - 0s 553us/step - loss: 0.0174\n",
      "Epoch 2/200\n",
      "723/723 [==============================] - 0s 169us/step - loss: 0.0012\n",
      "Epoch 3/200\n",
      "723/723 [==============================] - 0s 174us/step - loss: 9.0283e-04\n",
      "Epoch 4/200\n",
      "723/723 [==============================] - 0s 206us/step - loss: 7.6327e-04\n",
      "Epoch 5/200\n",
      "723/723 [==============================] - 0s 187us/step - loss: 6.9896e-04\n",
      "Epoch 6/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 6.2764e-04\n",
      "Epoch 7/200\n",
      "723/723 [==============================] - 0s 187us/step - loss: 5.6186e-04\n",
      "Epoch 8/200\n",
      "723/723 [==============================] - 0s 209us/step - loss: 5.1105e-04\n",
      "Epoch 9/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 4.6519e-04\n",
      "Epoch 10/200\n",
      "723/723 [==============================] - 0s 173us/step - loss: 4.2845e-04\n",
      "Epoch 11/200\n",
      "723/723 [==============================] - 0s 204us/step - loss: 3.9641e-04\n",
      "Epoch 12/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 3.7020e-04\n",
      "Epoch 13/200\n",
      "723/723 [==============================] - 0s 192us/step - loss: 3.5095e-04\n",
      "Epoch 14/200\n",
      "723/723 [==============================] - 0s 204us/step - loss: 3.3196e-04\n",
      "Epoch 15/200\n",
      "723/723 [==============================] - 0s 245us/step - loss: 3.1767e-04\n",
      "Epoch 16/200\n",
      "723/723 [==============================] - 0s 225us/step - loss: 3.0714e-04\n",
      "Epoch 17/200\n",
      "723/723 [==============================] - 0s 192us/step - loss: 2.9958e-04\n",
      "Epoch 18/200\n",
      "723/723 [==============================] - 0s 217us/step - loss: 2.9251e-04\n",
      "Epoch 19/200\n",
      "723/723 [==============================] - 0s 220us/step - loss: 2.8945e-04\n",
      "Epoch 20/200\n",
      "723/723 [==============================] - 0s 207us/step - loss: 2.8353e-04\n",
      "Epoch 21/200\n",
      "723/723 [==============================] - 0s 205us/step - loss: 2.8336e-04\n",
      "Epoch 22/200\n",
      "723/723 [==============================] - 0s 209us/step - loss: 2.7962e-04\n",
      "Epoch 23/200\n",
      "723/723 [==============================] - 0s 242us/step - loss: 2.7777e-04\n",
      "Epoch 24/200\n",
      "723/723 [==============================] - 0s 207us/step - loss: 2.7681e-04\n",
      "Epoch 25/200\n",
      "723/723 [==============================] - 0s 218us/step - loss: 2.7719e-04\n",
      "Epoch 26/200\n",
      "723/723 [==============================] - 0s 220us/step - loss: 2.7523e-04\n",
      "Epoch 27/200\n",
      "723/723 [==============================] - 0s 207us/step - loss: 2.7756e-04\n",
      "Epoch 28/200\n",
      "723/723 [==============================] - 0s 201us/step - loss: 2.8137e-04\n",
      "Epoch 29/200\n",
      "723/723 [==============================] - 0s 235us/step - loss: 2.7503e-04\n",
      "Epoch 30/200\n",
      "723/723 [==============================] - 0s 231us/step - loss: 2.7480e-04\n",
      "Epoch 31/200\n",
      "723/723 [==============================] - 0s 204us/step - loss: 2.7426e-04\n",
      "Epoch 32/200\n",
      "723/723 [==============================] - 0s 203us/step - loss: 2.8075e-04\n",
      "Epoch 33/200\n",
      "723/723 [==============================] - 0s 204us/step - loss: 2.7495e-04\n",
      "Epoch 34/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 2.7575e-04\n",
      "Epoch 35/200\n",
      "723/723 [==============================] - 0s 185us/step - loss: 2.7530e-04\n",
      "Epoch 36/200\n",
      "723/723 [==============================] - 0s 236us/step - loss: 2.7402e-04\n",
      "Epoch 37/200\n",
      "723/723 [==============================] - 0s 276us/step - loss: 2.7953e-04\n",
      "Epoch 38/200\n",
      "723/723 [==============================] - 0s 223us/step - loss: 2.7578e-04\n",
      "Epoch 39/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.7989e-04\n",
      "Epoch 40/200\n",
      "723/723 [==============================] - 0s 219us/step - loss: 2.7755e-04\n",
      "Epoch 41/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.7435e-04\n",
      "Epoch 42/200\n",
      "723/723 [==============================] - 0s 247us/step - loss: 2.7564e-04\n",
      "Epoch 43/200\n",
      "723/723 [==============================] - 0s 277us/step - loss: 2.7408e-04\n",
      "Epoch 44/200\n",
      "723/723 [==============================] - 0s 229us/step - loss: 2.7596e-04\n",
      "Epoch 45/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.7350e-04\n",
      "Epoch 46/200\n",
      "723/723 [==============================] - 0s 223us/step - loss: 2.7330e-04\n",
      "Epoch 47/200\n",
      "723/723 [==============================] - 0s 234us/step - loss: 2.7482e-04\n",
      "Epoch 48/200\n",
      "723/723 [==============================] - 0s 235us/step - loss: 2.7506e-04\n",
      "Epoch 49/200\n",
      "723/723 [==============================] - 0s 279us/step - loss: 2.7364e-04\n",
      "Epoch 50/200\n",
      "723/723 [==============================] - 0s 250us/step - loss: 2.7889e-04\n",
      "Epoch 51/200\n",
      "723/723 [==============================] - 0s 237us/step - loss: 2.7292e-04\n",
      "Epoch 52/200\n",
      "723/723 [==============================] - 0s 206us/step - loss: 2.7318e-04\n",
      "Epoch 53/200\n",
      "723/723 [==============================] - 0s 233us/step - loss: 2.7557e-04\n",
      "Epoch 54/200\n",
      "723/723 [==============================] - 0s 226us/step - loss: 2.7469e-04\n",
      "Epoch 55/200\n",
      "723/723 [==============================] - 0s 286us/step - loss: 2.7227e-04\n",
      "Epoch 56/200\n",
      "723/723 [==============================] - 0s 230us/step - loss: 2.7520e-04\n",
      "Epoch 57/200\n",
      "723/723 [==============================] - 0s 200us/step - loss: 2.7403e-04\n",
      "Epoch 58/200\n",
      "723/723 [==============================] - 0s 210us/step - loss: 2.7399e-04\n",
      "Epoch 59/200\n",
      "723/723 [==============================] - 0s 213us/step - loss: 2.7319e-04\n",
      "Epoch 60/200\n",
      "723/723 [==============================] - 0s 302us/step - loss: 2.7250e-04\n",
      "Epoch 61/200\n",
      "723/723 [==============================] - 0s 357us/step - loss: 2.7762e-04\n",
      "Epoch 62/200\n",
      "723/723 [==============================] - 0s 333us/step - loss: 2.7555e-04\n",
      "Epoch 63/200\n",
      "723/723 [==============================] - 0s 268us/step - loss: 2.7336e-04\n",
      "Epoch 64/200\n",
      "723/723 [==============================] - 0s 270us/step - loss: 2.7711e-04\n",
      "Epoch 65/200\n",
      "723/723 [==============================] - 0s 289us/step - loss: 2.7186e-04\n",
      "Epoch 66/200\n",
      "723/723 [==============================] - 0s 282us/step - loss: 2.7247e-04\n",
      "Epoch 67/200\n",
      "723/723 [==============================] - 0s 261us/step - loss: 3.1159e-04\n",
      "Epoch 68/200\n",
      "723/723 [==============================] - 0s 254us/step - loss: 2.7311e-04\n",
      "Epoch 69/200\n",
      "723/723 [==============================] - 0s 269us/step - loss: 2.7247e-04\n",
      "Epoch 70/200\n",
      "723/723 [==============================] - 0s 265us/step - loss: 2.7247e-04\n",
      "Epoch 71/200\n",
      "723/723 [==============================] - 0s 309us/step - loss: 2.7371e-04\n",
      "Epoch 72/200\n",
      "723/723 [==============================] - 0s 339us/step - loss: 2.7164e-04\n",
      "Epoch 73/200\n",
      "723/723 [==============================] - 0s 354us/step - loss: 2.7384e-04\n",
      "Epoch 74/200\n",
      "723/723 [==============================] - 0s 435us/step - loss: 2.7194e-04 0s - loss: 2.3691\n",
      "Epoch 75/200\n",
      "723/723 [==============================] - 0s 446us/step - loss: 2.7233e-04\n",
      "Epoch 76/200\n",
      "723/723 [==============================] - 0s 317us/step - loss: 2.7188e-04 0s - loss: 2.6449e-0\n",
      "Epoch 77/200\n",
      "723/723 [==============================] - 0s 339us/step - loss: 2.7609e-04\n",
      "Epoch 78/200\n",
      "723/723 [==============================] - 0s 335us/step - loss: 2.7254e-04\n",
      "Epoch 79/200\n",
      "723/723 [==============================] - 0s 354us/step - loss: 2.7566e-04\n",
      "Epoch 80/200\n",
      "723/723 [==============================] - 0s 365us/step - loss: 2.7134e-04\n",
      "Epoch 81/200\n",
      "723/723 [==============================] - 0s 388us/step - loss: 2.7698e-04\n",
      "Epoch 82/200\n",
      "723/723 [==============================] - 0s 308us/step - loss: 2.7286e-04\n",
      "Epoch 83/200\n",
      "723/723 [==============================] - 0s 305us/step - loss: 2.7133e-04\n",
      "Epoch 84/200\n",
      "723/723 [==============================] - 0s 314us/step - loss: 2.7151e-04\n",
      "Epoch 85/200\n",
      "723/723 [==============================] - 0s 331us/step - loss: 2.7100e-04\n",
      "Epoch 86/200\n",
      "723/723 [==============================] - 0s 334us/step - loss: 2.7019e-04\n",
      "Epoch 87/200\n",
      "723/723 [==============================] - 0s 306us/step - loss: 2.7319e-04\n",
      "Epoch 88/200\n",
      "723/723 [==============================] - 0s 349us/step - loss: 2.7030e-04\n",
      "Epoch 89/200\n",
      "723/723 [==============================] - 0s 311us/step - loss: 2.7020e-04 0s - loss: 2.5815e-0\n",
      "Epoch 90/200\n",
      "723/723 [==============================] - 0s 305us/step - loss: 2.7164e-04\n",
      "Epoch 91/200\n",
      "723/723 [==============================] - 0s 298us/step - loss: 2.7329e-04\n",
      "Epoch 92/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "723/723 [==============================] - 0s 304us/step - loss: 2.7148e-04\n",
      "Epoch 93/200\n",
      "723/723 [==============================] - 0s 285us/step - loss: 2.8505e-04\n",
      "Epoch 94/200\n",
      "723/723 [==============================] - 0s 263us/step - loss: 2.8135e-04\n",
      "Epoch 95/200\n",
      "723/723 [==============================] - 0s 270us/step - loss: 2.6976e-04\n",
      "Epoch 96/200\n",
      "723/723 [==============================] - 0s 263us/step - loss: 2.7147e-04\n",
      "Epoch 97/200\n",
      "723/723 [==============================] - 0s 283us/step - loss: 2.6937e-04\n",
      "Epoch 98/200\n",
      "723/723 [==============================] - 0s 317us/step - loss: 2.6952e-04\n",
      "Epoch 99/200\n",
      "723/723 [==============================] - 0s 253us/step - loss: 2.7612e-04\n",
      "Epoch 100/200\n",
      "723/723 [==============================] - 0s 243us/step - loss: 2.7977e-04\n",
      "Epoch 101/200\n",
      "723/723 [==============================] - 0s 234us/step - loss: 2.8135e-04\n",
      "Epoch 102/200\n",
      "723/723 [==============================] - 0s 199us/step - loss: 2.8064e-04\n",
      "Epoch 103/200\n",
      "723/723 [==============================] - 0s 210us/step - loss: 2.8307e-04\n",
      "Epoch 104/200\n",
      "723/723 [==============================] - 0s 294us/step - loss: 2.7603e-04\n",
      "Epoch 105/200\n",
      "723/723 [==============================] - 0s 205us/step - loss: 2.7444e-04\n",
      "Epoch 106/200\n",
      "723/723 [==============================] - 0s 195us/step - loss: 2.7207e-04\n",
      "Epoch 107/200\n",
      "723/723 [==============================] - 0s 196us/step - loss: 2.6946e-04\n",
      "Epoch 108/200\n",
      "723/723 [==============================] - 0s 199us/step - loss: 2.6878e-04\n",
      "Epoch 109/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 2.7458e-04\n",
      "Epoch 110/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.6986e-04\n",
      "Epoch 111/200\n",
      "723/723 [==============================] - 0s 249us/step - loss: 2.7800e-04\n",
      "Epoch 112/200\n",
      "723/723 [==============================] - 0s 189us/step - loss: 3.0582e-04\n",
      "Epoch 113/200\n",
      "723/723 [==============================] - 0s 223us/step - loss: 2.6954e-04\n",
      "Epoch 114/200\n",
      "723/723 [==============================] - 0s 200us/step - loss: 2.7563e-04\n",
      "Epoch 115/200\n",
      "723/723 [==============================] - 0s 195us/step - loss: 2.7573e-04\n",
      "Epoch 116/200\n",
      "723/723 [==============================] - 0s 199us/step - loss: 2.7299e-04\n",
      "Epoch 117/200\n",
      "723/723 [==============================] - 0s 223us/step - loss: 2.6995e-04\n",
      "Epoch 118/200\n",
      "723/723 [==============================] - 0s 253us/step - loss: 2.6709e-04\n",
      "Epoch 119/200\n",
      "723/723 [==============================] - 0s 202us/step - loss: 2.6821e-04\n",
      "Epoch 120/200\n",
      "723/723 [==============================] - 0s 220us/step - loss: 2.7129e-04\n",
      "Epoch 121/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.6871e-04\n",
      "Epoch 122/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 2.6619e-04\n",
      "Epoch 123/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 2.7323e-04\n",
      "Epoch 124/200\n",
      "723/723 [==============================] - 0s 213us/step - loss: 2.6760e-04\n",
      "Epoch 125/200\n",
      "723/723 [==============================] - 0s 272us/step - loss: 2.7773e-04\n",
      "Epoch 126/200\n",
      "723/723 [==============================] - 0s 191us/step - loss: 2.7338e-04\n",
      "Epoch 127/200\n",
      "723/723 [==============================] - 0s 207us/step - loss: 2.7254e-04\n",
      "Epoch 128/200\n",
      "723/723 [==============================] - 0s 202us/step - loss: 2.8660e-04\n",
      "Epoch 129/200\n",
      "723/723 [==============================] - 0s 203us/step - loss: 2.7254e-04\n",
      "Epoch 130/200\n",
      "723/723 [==============================] - 0s 189us/step - loss: 2.9466e-04\n",
      "Epoch 131/200\n",
      "723/723 [==============================] - 0s 231us/step - loss: 2.7188e-04\n",
      "Epoch 132/200\n",
      "723/723 [==============================] - 0s 227us/step - loss: 2.7262e-04\n",
      "Epoch 133/200\n",
      "723/723 [==============================] - 0s 203us/step - loss: 2.6365e-04\n",
      "Epoch 134/200\n",
      "723/723 [==============================] - 0s 212us/step - loss: 2.6786e-04\n",
      "Epoch 135/200\n",
      "723/723 [==============================] - 0s 192us/step - loss: 2.6758e-04\n",
      "Epoch 136/200\n",
      "723/723 [==============================] - 0s 211us/step - loss: 2.6466e-04\n",
      "Epoch 137/200\n",
      "723/723 [==============================] - 0s 211us/step - loss: 2.7643e-04\n",
      "Epoch 138/200\n",
      "723/723 [==============================] - 0s 254us/step - loss: 2.6528e-04\n",
      "Epoch 139/200\n",
      "723/723 [==============================] - 0s 214us/step - loss: 2.7244e-04\n",
      "Epoch 140/200\n",
      "723/723 [==============================] - 0s 207us/step - loss: 2.6608e-04\n",
      "Epoch 141/200\n",
      "723/723 [==============================] - 0s 209us/step - loss: 2.7295e-04\n",
      "Epoch 142/200\n",
      "723/723 [==============================] - 0s 270us/step - loss: 2.7222e-04\n",
      "Epoch 143/200\n",
      "723/723 [==============================] - 0s 265us/step - loss: 2.7008e-04\n",
      "Epoch 144/200\n",
      "723/723 [==============================] - 0s 288us/step - loss: 2.6957e-04\n",
      "Epoch 145/200\n",
      "723/723 [==============================] - 0s 279us/step - loss: 2.6763e-04\n",
      "Epoch 146/200\n",
      "723/723 [==============================] - 0s 264us/step - loss: 2.7123e-04\n",
      "Epoch 147/200\n",
      "723/723 [==============================] - 0s 253us/step - loss: 2.8446e-04\n",
      "Epoch 148/200\n",
      "723/723 [==============================] - 0s 243us/step - loss: 2.7892e-04\n",
      "Epoch 149/200\n",
      "723/723 [==============================] - 0s 250us/step - loss: 2.6412e-04\n",
      "Epoch 150/200\n",
      "723/723 [==============================] - 0s 288us/step - loss: 2.6826e-04\n",
      "Epoch 151/200\n",
      "723/723 [==============================] - 0s 224us/step - loss: 2.6982e-04\n",
      "Epoch 152/200\n",
      "723/723 [==============================] - 0s 235us/step - loss: 2.6667e-04\n",
      "Epoch 153/200\n",
      "723/723 [==============================] - 0s 228us/step - loss: 2.6450e-04\n",
      "Epoch 154/200\n",
      "723/723 [==============================] - 0s 225us/step - loss: 2.6562e-04\n",
      "Epoch 155/200\n",
      "723/723 [==============================] - 0s 246us/step - loss: 2.6793e-04\n",
      "Epoch 156/200\n",
      "723/723 [==============================] - 0s 294us/step - loss: 2.6886e-04\n",
      "Epoch 157/200\n",
      "723/723 [==============================] - 0s 250us/step - loss: 2.6260e-04\n",
      "Epoch 158/200\n",
      "723/723 [==============================] - 0s 247us/step - loss: 2.6351e-04 0s - loss: 2.7688e\n",
      "Epoch 159/200\n",
      "723/723 [==============================] - 0s 235us/step - loss: 2.6700e-04\n",
      "Epoch 160/200\n",
      "723/723 [==============================] - 0s 254us/step - loss: 2.6673e-04\n",
      "Epoch 161/200\n",
      "723/723 [==============================] - 0s 252us/step - loss: 2.8300e-04\n",
      "Epoch 162/200\n",
      "723/723 [==============================] - 0s 263us/step - loss: 2.7690e-04\n",
      "Epoch 163/200\n",
      "723/723 [==============================] - 0s 250us/step - loss: 2.6927e-04\n",
      "Epoch 164/200\n",
      "723/723 [==============================] - 0s 246us/step - loss: 2.6548e-04\n",
      "Epoch 165/200\n",
      "723/723 [==============================] - 0s 257us/step - loss: 2.6120e-04\n",
      "Epoch 166/200\n",
      "723/723 [==============================] - 0s 225us/step - loss: 2.7576e-04\n",
      "Epoch 167/200\n",
      "723/723 [==============================] - 0s 264us/step - loss: 2.7288e-04\n",
      "Epoch 168/200\n",
      "723/723 [==============================] - 0s 257us/step - loss: 2.7274e-04\n",
      "Epoch 169/200\n",
      "723/723 [==============================] - 0s 275us/step - loss: 2.6304e-04\n",
      "Epoch 170/200\n",
      "723/723 [==============================] - 0s 256us/step - loss: 2.6796e-04\n",
      "Epoch 171/200\n",
      "723/723 [==============================] - 0s 261us/step - loss: 2.7249e-04\n",
      "Epoch 172/200\n",
      "723/723 [==============================] - 0s 252us/step - loss: 2.6418e-04\n",
      "Epoch 173/200\n",
      "723/723 [==============================] - 0s 283us/step - loss: 2.5873e-04 0s - loss: 2.5346e-0\n",
      "Epoch 174/200\n",
      "723/723 [==============================] - 0s 250us/step - loss: 2.6414e-04\n",
      "Epoch 175/200\n",
      "723/723 [==============================] - 0s 247us/step - loss: 2.6108e-04\n",
      "Epoch 176/200\n",
      "723/723 [==============================] - 0s 264us/step - loss: 2.6387e-04\n",
      "Epoch 177/200\n",
      "723/723 [==============================] - 0s 272us/step - loss: 2.6737e-04\n",
      "Epoch 178/200\n",
      "723/723 [==============================] - 0s 285us/step - loss: 2.7778e-04\n",
      "Epoch 179/200\n",
      "723/723 [==============================] - 0s 267us/step - loss: 2.6037e-04\n",
      "Epoch 180/200\n",
      "723/723 [==============================] - 0s 227us/step - loss: 2.7016e-04\n",
      "Epoch 181/200\n",
      "723/723 [==============================] - 0s 225us/step - loss: 2.6145e-04\n",
      "Epoch 182/200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "723/723 [==============================] - 0s 228us/step - loss: 2.5747e-04\n",
      "Epoch 183/200\n",
      "723/723 [==============================] - 0s 209us/step - loss: 2.6086e-04\n",
      "Epoch 184/200\n",
      "723/723 [==============================] - 0s 227us/step - loss: 2.6526e-04\n",
      "Epoch 185/200\n",
      "723/723 [==============================] - 0s 217us/step - loss: 2.6975e-04\n",
      "Epoch 186/200\n",
      "723/723 [==============================] - 0s 218us/step - loss: 2.6585e-04\n",
      "Epoch 187/200\n",
      "723/723 [==============================] - 0s 224us/step - loss: 2.6800e-04\n",
      "Epoch 188/200\n",
      "723/723 [==============================] - 0s 217us/step - loss: 2.7426e-04\n",
      "Epoch 189/200\n",
      "723/723 [==============================] - 0s 228us/step - loss: 2.7626e-04\n",
      "Epoch 190/200\n",
      "723/723 [==============================] - 0s 254us/step - loss: 2.6476e-04\n",
      "Epoch 191/200\n",
      "723/723 [==============================] - 0s 253us/step - loss: 2.6072e-04\n",
      "Epoch 192/200\n",
      "723/723 [==============================] - 0s 210us/step - loss: 2.6436e-04\n",
      "Epoch 193/200\n",
      "723/723 [==============================] - 0s 235us/step - loss: 2.7187e-04\n",
      "Epoch 194/200\n",
      "723/723 [==============================] - 0s 225us/step - loss: 2.7834e-04\n",
      "Epoch 195/200\n",
      "723/723 [==============================] - 0s 220us/step - loss: 2.6063e-04\n",
      "Epoch 196/200\n",
      "723/723 [==============================] - 0s 259us/step - loss: 2.5732e-04\n",
      "Epoch 197/200\n",
      "723/723 [==============================] - 0s 290us/step - loss: 2.5934e-04\n",
      "Epoch 198/200\n",
      "723/723 [==============================] - 0s 246us/step - loss: 2.5777e-04\n",
      "Epoch 199/200\n",
      "723/723 [==============================] - 0s 252us/step - loss: 2.5607e-04\n",
      "Epoch 200/200\n",
      "723/723 [==============================] - 0s 259us/step - loss: 2.6997e-04\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.callbacks.History at 0x1f0b3a39f60>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#train the model\n",
    "model.fit(X,y,batch_size=30,epochs=200)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[27.433279]\n",
      " [27.232935]\n",
      " [26.78789 ]\n",
      " [26.466251]\n",
      " [26.4741  ]\n",
      " [26.057793]\n",
      " [25.669865]\n",
      " [25.471561]\n",
      " [25.375616]\n",
      " [24.885414]\n",
      " [24.59681 ]\n",
      " [24.46758 ]\n",
      " [24.758844]\n",
      " [24.658588]\n",
      " [24.789503]\n",
      " [24.72543 ]\n",
      " [24.714542]\n",
      " [24.699238]\n",
      " [24.58572 ]\n",
      " [24.816645]\n",
      " [24.908464]\n",
      " [24.91265 ]\n",
      " [24.915182]\n",
      " [25.363348]\n",
      " [25.426146]\n",
      " [25.420282]\n",
      " [24.808664]\n",
      " [24.508179]\n",
      " [24.303352]\n",
      " [24.279863]\n",
      " [24.662663]\n",
      " [24.960283]\n",
      " [25.630793]\n",
      " [25.8043  ]\n",
      " [26.02138 ]\n",
      " [26.185446]\n",
      " [26.005255]\n",
      " [26.03697 ]\n",
      " [26.066132]\n",
      " [26.19588 ]\n",
      " [26.588308]\n",
      " [26.762562]\n",
      " [26.913908]\n",
      " [27.30084 ]\n",
      " [27.22202 ]\n",
      " [27.247108]\n",
      " [27.059053]\n",
      " [27.062656]\n",
      " [26.811749]\n",
      " [26.566673]\n",
      " [26.744743]\n",
      " [26.7631  ]\n",
      " [26.828627]\n",
      " [26.894573]\n",
      " [26.828108]\n",
      " [26.635622]\n",
      " [26.431345]\n",
      " [26.466373]\n",
      " [26.498951]\n",
      " [26.668741]\n",
      " [26.814598]\n",
      " [26.885122]\n",
      " [26.844715]\n",
      " [26.880629]\n",
      " [27.024614]\n",
      " [27.10821 ]\n",
      " [27.240585]\n",
      " [27.272135]\n",
      " [27.321999]\n",
      " [27.296997]\n",
      " [27.251799]\n",
      " [27.163713]\n",
      " [27.053467]\n",
      " [26.999947]\n",
      " [26.974298]\n",
      " [26.728046]\n",
      " [26.482424]\n",
      " [26.353487]\n",
      " [26.30553 ]\n",
      " [26.47281 ]\n",
      " [26.572992]\n",
      " [26.58545 ]\n",
      " [26.548588]\n",
      " [26.65811 ]\n",
      " [26.735146]\n",
      " [26.771421]\n",
      " [26.796322]\n",
      " [26.728392]\n",
      " [26.679098]\n",
      " [26.656961]\n",
      " [26.632372]\n",
      " [26.747866]\n",
      " [27.155891]\n",
      " [27.21152 ]\n",
      " [27.21011 ]\n",
      " [27.264778]\n",
      " [27.20241 ]\n",
      " [27.18312 ]\n",
      " [27.165785]\n",
      " [27.011072]\n",
      " [26.994125]\n",
      " [26.983192]\n",
      " [26.975708]\n",
      " [26.97421 ]\n",
      " [27.031864]\n",
      " [27.042667]\n",
      " [27.055607]\n",
      " [27.031443]\n",
      " [26.826315]\n",
      " [26.76352 ]\n",
      " [26.797287]\n",
      " [26.948975]\n",
      " [26.984373]\n",
      " [27.063854]\n",
      " [27.220726]\n",
      " [27.304476]\n",
      " [27.32307 ]\n",
      " [27.312714]\n",
      " [27.23693 ]\n",
      " [27.196325]\n",
      " [27.433435]\n",
      " [27.591343]\n",
      " [27.694517]\n",
      " [27.795408]\n",
      " [27.898182]\n",
      " [27.83187 ]\n",
      " [27.759512]\n",
      " [27.820229]\n",
      " [27.747093]\n",
      " [27.704466]\n",
      " [27.769209]\n",
      " [27.92286 ]\n",
      " [27.869654]\n",
      " [27.802055]\n",
      " [27.727997]\n",
      " [27.685184]\n",
      " [27.619776]\n",
      " [27.56417 ]\n",
      " [27.546465]\n",
      " [27.572   ]\n",
      " [27.703468]\n",
      " [27.779022]\n",
      " [27.929697]\n",
      " [28.30922 ]\n",
      " [28.987047]\n",
      " [29.111067]\n",
      " [29.201672]\n",
      " [29.45111 ]\n",
      " [29.636168]\n",
      " [29.721888]\n",
      " [29.917273]\n",
      " [29.81933 ]\n",
      " [29.657656]\n",
      " [29.564047]\n",
      " [29.581095]\n",
      " [29.571491]\n",
      " [29.561537]\n",
      " [29.622925]\n",
      " [29.864805]\n",
      " [30.051016]\n",
      " [30.318975]\n",
      " [30.50485 ]\n",
      " [30.684727]\n",
      " [30.826096]\n",
      " [30.760918]\n",
      " [30.556683]\n",
      " [30.255383]\n",
      " [30.365307]\n",
      " [30.37555 ]\n",
      " [30.301605]\n",
      " [30.401398]\n",
      " [30.407232]\n",
      " [30.20561 ]\n",
      " [30.074265]\n",
      " [29.90831 ]\n",
      " [29.834074]\n",
      " [29.774408]\n",
      " [29.924234]\n",
      " [29.920439]\n",
      " [29.882135]\n",
      " [29.788927]\n",
      " [29.729555]\n",
      " [29.628698]\n",
      " [29.673891]\n",
      " [29.668697]\n",
      " [29.670443]\n",
      " [29.707853]\n",
      " [29.842348]\n",
      " [29.950499]\n",
      " [29.954786]\n",
      " [29.862389]\n",
      " [29.951595]\n",
      " [30.039282]\n",
      " [30.27859 ]\n",
      " [30.225445]\n",
      " [30.344753]\n",
      " [30.40151 ]\n",
      " [30.457567]\n",
      " [30.499537]\n",
      " [30.391453]\n",
      " [30.433975]\n",
      " [30.472713]\n",
      " [30.482359]\n",
      " [30.489708]\n",
      " [30.517029]\n",
      " [30.528807]\n",
      " [30.537498]\n",
      " [30.920248]\n",
      " [31.234518]\n",
      " [31.357565]\n",
      " [31.614523]\n",
      " [31.916105]\n",
      " [32.02646 ]\n",
      " [32.152313]\n",
      " [32.0374  ]\n",
      " [32.00994 ]\n",
      " [31.928246]\n",
      " [31.873583]\n",
      " [31.805258]\n",
      " [31.880648]\n",
      " [31.947361]\n",
      " [32.13432 ]\n",
      " [32.263454]\n",
      " [32.23104 ]\n",
      " [32.377163]\n",
      " [31.854551]\n",
      " [31.50479 ]\n",
      " [31.263792]\n",
      " [30.809086]\n",
      " [30.583164]\n",
      " [30.447956]\n",
      " [30.366865]\n",
      " [30.479992]\n",
      " [30.606323]\n",
      " [30.7002  ]\n",
      " [30.685246]\n",
      " [30.806974]\n",
      " [30.986752]\n",
      " [31.0757  ]\n",
      " [31.16117 ]\n",
      " [31.084583]\n",
      " [31.035175]\n",
      " [30.925117]\n",
      " [30.860287]\n",
      " [30.814186]\n",
      " [30.9308  ]\n",
      " [31.2677  ]\n",
      " [31.371593]\n",
      " [31.532352]\n",
      " [31.557371]\n",
      " [31.665005]\n",
      " [31.70436 ]\n",
      " [31.712023]\n",
      " [31.825624]\n",
      " [31.91799 ]\n",
      " [31.600039]\n",
      " [31.547043]\n",
      " [31.568771]\n",
      " [31.565594]\n",
      " [31.600517]\n",
      " [31.65087 ]\n",
      " [31.736423]\n",
      " [31.692905]\n",
      " [31.764748]\n",
      " [31.797665]\n",
      " [31.799065]\n",
      " [32.037315]\n",
      " [32.151134]\n",
      " [32.241898]\n",
      " [32.16437 ]\n",
      " [32.13779 ]\n",
      " [32.02498 ]\n",
      " [31.915997]\n",
      " [31.825514]\n",
      " [31.639967]\n",
      " [31.531658]\n",
      " [31.456982]\n",
      " [31.47177 ]\n",
      " [31.42058 ]\n",
      " [31.373047]\n",
      " [31.272333]\n",
      " [31.370077]\n",
      " [31.416967]\n",
      " [31.450178]\n",
      " [31.51729 ]\n",
      " [31.418596]\n",
      " [31.400814]\n",
      " [31.572779]\n",
      " [31.5605  ]\n",
      " [31.79323 ]\n",
      " [31.916044]\n",
      " [32.071384]\n",
      " [32.159073]\n",
      " [32.22652 ]\n",
      " [32.26101 ]\n",
      " [32.382668]\n",
      " [32.49579 ]\n",
      " [32.49725 ]\n",
      " [32.346886]\n",
      " [32.19451 ]\n",
      " [31.998951]\n",
      " [31.807531]\n",
      " [31.64871 ]\n",
      " [31.549316]\n",
      " [31.547861]\n",
      " [31.410667]\n",
      " [31.253147]\n",
      " [31.285387]\n",
      " [31.428656]\n",
      " [31.547503]\n",
      " [31.744059]\n",
      " [32.29527 ]\n",
      " [32.748833]\n",
      " [33.07218 ]\n",
      " [33.23819 ]\n",
      " [33.373608]\n",
      " [33.380898]\n",
      " [33.142357]\n",
      " [33.226475]\n",
      " [33.353615]\n",
      " [34.209755]\n",
      " [34.673164]\n",
      " [35.438076]\n",
      " [35.869286]\n",
      " [36.19635 ]\n",
      " [36.12115 ]\n",
      " [36.143715]\n",
      " [36.33363 ]\n",
      " [37.198288]\n",
      " [37.842785]\n",
      " [38.14366 ]\n",
      " [39.367172]\n",
      " [39.94446 ]\n",
      " [40.249462]\n",
      " [40.794266]\n",
      " [40.678417]\n",
      " [40.503117]\n",
      " [40.95205 ]\n",
      " [41.195366]\n",
      " [42.02679 ]\n",
      " [42.71386 ]\n",
      " [43.453945]\n",
      " [43.683987]\n",
      " [43.2904  ]\n",
      " [42.643997]\n",
      " [42.473877]\n",
      " [43.16624 ]\n",
      " [43.35472 ]\n",
      " [44.01774 ]\n",
      " [44.27694 ]\n",
      " [44.686443]\n",
      " [44.940613]\n",
      " [45.159008]\n",
      " [44.745945]\n",
      " [45.0548  ]\n",
      " [45.096516]\n",
      " [44.82594 ]\n",
      " [44.241245]\n",
      " [44.943733]\n",
      " [45.784817]\n",
      " [46.094418]\n",
      " [46.3293  ]\n",
      " [46.730194]\n",
      " [46.732365]\n",
      " [47.154953]\n",
      " [47.87791 ]\n",
      " [48.767853]\n",
      " [49.1017  ]\n",
      " [49.442837]\n",
      " [49.726524]\n",
      " [49.022038]\n",
      " [48.893055]\n",
      " [48.674286]\n",
      " [48.371967]\n",
      " [48.388245]\n",
      " [48.18165 ]\n",
      " [48.138847]\n",
      " [49.29902 ]\n",
      " [49.638653]\n",
      " [49.36604 ]\n",
      " [48.786606]\n",
      " [48.6188  ]\n",
      " [48.597954]\n",
      " [48.392956]\n",
      " [47.709713]\n",
      " [46.813625]\n",
      " [46.69337 ]\n",
      " [46.79969 ]\n",
      " [46.993   ]\n",
      " [47.048187]\n",
      " [47.956055]\n",
      " [48.441086]\n",
      " [49.641453]\n",
      " [50.427776]\n",
      " [50.757587]\n",
      " [51.266624]\n",
      " [51.69849 ]\n",
      " [52.33507 ]\n",
      " [52.403145]\n",
      " [52.280033]\n",
      " [52.266193]\n",
      " [52.034527]\n",
      " [52.388927]\n",
      " [52.201973]\n",
      " [51.88714 ]\n",
      " [51.750877]\n",
      " [51.233303]\n",
      " [51.296406]\n",
      " [51.424698]\n",
      " [51.061203]\n",
      " [50.57861 ]\n",
      " [50.258884]\n",
      " [50.159355]\n",
      " [49.93523 ]\n",
      " [50.112446]\n",
      " [50.30738 ]\n",
      " [50.473625]\n",
      " [50.61472 ]\n",
      " [50.419903]\n",
      " [50.37636 ]\n",
      " [50.523632]\n",
      " [50.86445 ]\n",
      " [51.12611 ]\n",
      " [51.43529 ]\n",
      " [52.38194 ]\n",
      " [52.919685]\n",
      " [53.274605]\n",
      " [53.802204]\n",
      " [54.54854 ]\n",
      " [55.24923 ]\n",
      " [55.39885 ]\n",
      " [55.84987 ]\n",
      " [56.244095]\n",
      " [56.42502 ]\n",
      " [57.081066]\n",
      " [58.522797]\n",
      " [59.421288]\n",
      " [60.061485]\n",
      " [60.33079 ]\n",
      " [60.504074]\n",
      " [60.74585 ]\n",
      " [60.68185 ]\n",
      " [61.21721 ]\n",
      " [61.189377]\n",
      " [61.902527]\n",
      " [63.82274 ]\n",
      " [65.04058 ]\n",
      " [65.87656 ]\n",
      " [65.82544 ]\n",
      " [67.4354  ]\n",
      " [69.32969 ]\n",
      " [70.59403 ]\n",
      " [72.47639 ]\n",
      " [73.12512 ]\n",
      " [72.21007 ]\n",
      " [71.796844]\n",
      " [71.09887 ]\n",
      " [70.351395]\n",
      " [69.74532 ]\n",
      " [68.31677 ]\n",
      " [66.73347 ]\n",
      " [66.351295]\n",
      " [66.912285]\n",
      " [66.47781 ]\n",
      " [65.88937 ]\n",
      " [66.76183 ]\n",
      " [68.03788 ]\n",
      " [67.93093 ]\n",
      " [68.2328  ]\n",
      " [67.94139 ]\n",
      " [67.52743 ]\n",
      " [67.410545]\n",
      " [68.54698 ]\n",
      " [69.37039 ]\n",
      " [70.23074 ]\n",
      " [70.367   ]\n",
      " [70.50771 ]\n",
      " [70.52455 ]\n",
      " [68.998436]\n",
      " [68.221725]\n",
      " [67.4839  ]\n",
      " [68.16769 ]\n",
      " [67.870415]\n",
      " [67.761246]\n",
      " [67.60695 ]\n",
      " [67.13465 ]\n",
      " [67.6938  ]\n",
      " [67.91718 ]\n",
      " [68.46004 ]\n",
      " [69.501144]\n",
      " [71.477646]\n",
      " [72.71356 ]\n",
      " [73.21541 ]\n",
      " [73.63564 ]\n",
      " [73.87254 ]\n",
      " [74.50767 ]\n",
      " [74.85772 ]\n",
      " [74.06779 ]\n",
      " [73.1142  ]\n",
      " [72.90053 ]\n",
      " [71.63051 ]\n",
      " [70.89221 ]\n",
      " [71.16351 ]\n",
      " [71.49322 ]\n",
      " [71.92329 ]\n",
      " [72.02506 ]\n",
      " [71.29219 ]\n",
      " [69.86535 ]\n",
      " [68.03014 ]\n",
      " [65.04006 ]\n",
      " [63.516056]\n",
      " [63.48766 ]\n",
      " [64.25407 ]\n",
      " [65.068886]\n",
      " [65.8959  ]\n",
      " [66.49697 ]\n",
      " [66.44495 ]\n",
      " [65.57113 ]\n",
      " [65.551   ]\n",
      " [65.00262 ]\n",
      " [64.75529 ]\n",
      " [65.207344]\n",
      " [65.22682 ]\n",
      " [66.008194]\n",
      " [66.591774]\n",
      " [67.05008 ]\n",
      " [66.60127 ]\n",
      " [66.0769  ]\n",
      " [66.49945 ]\n",
      " [66.73427 ]\n",
      " [68.26934 ]\n",
      " [69.25248 ]\n",
      " [69.71525 ]\n",
      " [69.60325 ]\n",
      " [68.44472 ]\n",
      " [66.946495]\n",
      " [65.99672 ]\n",
      " [64.27639 ]\n",
      " [63.676083]\n",
      " [62.854504]\n",
      " [62.107166]\n",
      " [61.628345]\n",
      " [61.355164]\n",
      " [61.834827]\n",
      " [63.061337]\n",
      " [63.54445 ]\n",
      " [63.421085]\n",
      " [63.12744 ]\n",
      " [62.177208]\n",
      " [61.14101 ]\n",
      " [60.678066]\n",
      " [60.811237]\n",
      " [60.740383]\n",
      " [61.044426]\n",
      " [61.893925]\n",
      " [61.952118]\n",
      " [60.992817]\n",
      " [59.48851 ]\n",
      " [58.815857]\n",
      " [58.470387]\n",
      " [57.94132 ]\n",
      " [57.822327]\n",
      " [58.544613]\n",
      " [58.933613]\n",
      " [59.262844]\n",
      " [59.423927]\n",
      " [59.948433]\n",
      " [60.209312]\n",
      " [59.857155]\n",
      " [59.3126  ]\n",
      " [59.42504 ]\n",
      " [59.762817]\n",
      " [59.67318 ]\n",
      " [59.08438 ]\n",
      " [58.51203 ]\n",
      " [58.32698 ]\n",
      " [58.63198 ]\n",
      " [58.75187 ]\n",
      " [58.07928 ]\n",
      " [58.317368]\n",
      " [58.257473]\n",
      " [59.03388 ]\n",
      " [59.921936]\n",
      " [60.095898]\n",
      " [60.485832]\n",
      " [60.33503 ]\n",
      " [60.54858 ]\n",
      " [61.026752]\n",
      " [61.228867]\n",
      " [61.64146 ]\n",
      " [61.94269 ]\n",
      " [61.05972 ]\n",
      " [60.44518 ]\n",
      " [59.76359 ]\n",
      " [59.36493 ]\n",
      " [58.58416 ]\n",
      " [57.87606 ]\n",
      " [56.74565 ]\n",
      " [55.798374]\n",
      " [56.007904]\n",
      " [54.697533]\n",
      " [54.420876]\n",
      " [53.901848]\n",
      " [53.61948 ]\n",
      " [54.07414 ]\n",
      " [55.122215]\n",
      " [55.477512]\n",
      " [55.192047]\n",
      " [55.597115]\n",
      " [55.906036]\n",
      " [55.747906]\n",
      " [55.762077]\n",
      " [55.672188]\n",
      " [56.01126 ]\n",
      " [57.10222 ]\n",
      " [57.833782]\n",
      " [58.540306]\n",
      " [59.12184 ]\n",
      " [58.897552]\n",
      " [58.80709 ]\n",
      " [59.03292 ]\n",
      " [59.181908]\n",
      " [58.452858]\n",
      " [57.404976]\n",
      " [56.620285]\n",
      " [56.17215 ]\n",
      " [56.645447]\n",
      " [56.403687]\n",
      " [57.210716]\n",
      " [57.608303]\n",
      " [57.47419 ]\n",
      " [57.206825]\n",
      " [56.174915]\n",
      " [55.58633 ]\n",
      " [55.04684 ]\n",
      " [55.2553  ]\n",
      " [56.04908 ]\n",
      " [57.134304]\n",
      " [58.291504]\n",
      " [59.103027]\n",
      " [60.020634]\n",
      " [60.31564 ]\n",
      " [60.536263]\n",
      " [60.721195]\n",
      " [60.73886 ]\n",
      " [60.64308 ]\n",
      " [61.4444  ]\n",
      " [61.06769 ]\n",
      " [60.48074 ]\n",
      " [60.75805 ]\n",
      " [60.6004  ]\n",
      " [60.380512]\n",
      " [59.76225 ]\n",
      " [60.17675 ]\n",
      " [60.80614 ]\n",
      " [60.827274]\n",
      " [61.528786]\n",
      " [62.35681 ]\n",
      " [62.716915]\n",
      " [64.057655]\n",
      " [64.70014 ]\n",
      " [65.41106 ]\n",
      " [65.49276 ]\n",
      " [66.08349 ]\n",
      " [64.87216 ]\n",
      " [64.23317 ]\n",
      " [63.727676]\n",
      " [62.224083]\n",
      " [62.22665 ]\n",
      " [61.896854]\n",
      " [62.08247 ]\n",
      " [62.24153 ]\n",
      " [61.60735 ]\n",
      " [62.620907]\n",
      " [64.161385]\n",
      " [64.05878 ]\n",
      " [64.29698 ]\n",
      " [64.59584 ]\n",
      " [64.33371 ]\n",
      " [62.67691 ]\n",
      " [62.025124]\n",
      " [62.01138 ]\n",
      " [62.27117 ]\n",
      " [63.710903]\n",
      " [64.194305]\n",
      " [64.602295]\n",
      " [64.552376]\n",
      " [64.61723 ]\n",
      " [63.96256 ]\n",
      " [63.564735]\n",
      " [63.48946 ]\n",
      " [62.97438 ]\n",
      " [63.173244]\n",
      " [63.334038]\n",
      " [63.643536]\n",
      " [63.13837 ]\n",
      " [62.803307]\n",
      " [62.259995]\n",
      " [61.723015]\n",
      " [61.6575  ]\n",
      " [61.557823]\n",
      " [61.791286]\n",
      " [61.611618]\n",
      " [61.70397 ]\n",
      " [62.400833]\n",
      " [62.76093 ]\n",
      " [62.70838 ]\n",
      " [62.134644]\n",
      " [61.812763]\n",
      " [61.28532 ]\n",
      " [60.96598 ]\n",
      " [60.897675]\n",
      " [61.15794 ]\n",
      " [60.786068]\n",
      " [60.28196 ]\n",
      " [59.824703]\n",
      " [59.25289 ]\n",
      " [58.455803]\n",
      " [57.6976  ]\n",
      " [57.22352 ]\n",
      " [56.929024]\n",
      " [56.375904]\n",
      " [55.885006]] [26.72, 25.93, 25.800000000000004, 26.24, 25.26, 24.88, 24.95, 24.99, 23.96, 23.95, 24.029999999999998, 24.909999999999997, 24.26, 24.7, 24.37, 24.44, 24.39, 24.16, 24.849999999999998, 24.77, 24.64, 24.65, 25.7, 25.230000000000004, 25.14, 23.69, 23.829999999999995, 23.74, 23.99, 24.909999999999997, 25.11, 26.28, 25.78, 26.03, 26.110000000000003, 25.47, 25.77, 25.84, 26.09, 26.86, 26.73, 26.85, 27.559999999999995, 26.83, 26.989999999999995, 26.53, 26.79, 26.19, 25.98, 26.72, 26.54, 26.65, 26.73, 26.47, 26.1, 25.89, 26.24, 26.28, 26.64, 26.75, 26.72, 26.52, 26.66, 26.94, 26.95, 27.15, 27.05, 27.119999999999997, 26.989999999999995, 26.92, 26.77, 26.64, 26.66, 26.680000000000003, 26.13, 25.89, 25.92, 25.98, 26.44, 26.45, 26.34, 26.24, 26.54, 26.56, 26.55, 26.56, 26.370000000000005, 26.34, 26.359999999999996, 26.33, 26.64, 27.45, 27.02, 26.94, 27.07, 26.84, 26.869999999999997, 26.88, 26.53, 26.71, 26.71, 26.7, 26.71, 26.85, 26.79, 26.81, 26.73, 26.28, 26.41, 26.58, 26.89, 26.77, 26.91, 27.17, 27.15, 27.07, 27.03, 26.86, 26.869999999999997, 27.49, 27.54, 27.57, 27.67, 27.77, 27.46, 27.39, 27.63, 27.38, 27.38, 27.6, 27.87, 27.53, 27.45, 27.36, 27.36, 27.26, 27.23, 27.26, 27.35, 27.62, 27.62, 27.87, 28.56, 29.64, 29.0, 29.05, 29.51, 29.6, 29.54, 29.92, 29.41, 29.17, 29.17, 29.34, 29.29, 29.3, 29.45, 29.94, 30.04, 30.42, 30.49, 30.660000000000004, 30.74, 30.399999999999995, 30.0, 29.580000000000002, 30.25, 30.13, 29.95, 30.29, 30.17, 29.66, 29.64, 29.42, 29.47, 29.44, 29.88, 29.66, 29.580000000000002, 29.4, 29.39, 29.22, 29.48, 29.4, 29.42, 29.5, 29.769999999999996, 29.829999999999995, 29.7, 29.47, 29.81, 29.89, 30.339999999999996, 29.89, 30.25, 30.21, 30.27, 30.279999999999998, 29.99, 30.22, 30.27, 30.23, 30.24, 30.3, 30.279999999999998, 30.29, 31.18, 31.4, 31.26, 31.7, 32.06, 31.89, 32.05, 31.61, 31.7, 31.55, 31.540000000000003, 31.45, 31.74, 31.78, 32.14, 32.18, 31.93, 32.31, 30.88, 30.76, 30.68, 29.94, 30.02, 30.05, 30.01, 30.399999999999995, 30.54, 30.57, 30.410000000000004, 30.71, 30.96, 30.93, 31.01, 30.720000000000002, 30.7, 30.51, 30.51, 30.49, 30.84, 31.47, 31.26, 31.49, 31.33, 31.540000000000003, 31.480000000000004, 31.46, 31.71, 31.789999999999996, 30.9, 31.219999999999995, 31.34, 31.3, 31.39, 31.480000000000004, 31.59, 31.38, 31.6, 31.58, 31.540000000000003, 32.1, 32.05, 32.1, 31.800000000000004, 31.84, 31.6, 31.51, 31.44, 31.14, 31.13, 31.11, 31.24, 31.099999999999998, 31.06, 30.88, 31.25, 31.219999999999995, 31.24, 31.35, 31.03, 31.11, 31.55, 31.28, 31.85, 31.83, 32.02, 32.01, 32.06, 32.03, 32.29, 32.38, 32.24, 31.88, 31.729999999999997, 31.47, 31.290000000000003, 31.18, 31.170000000000005, 31.3, 30.98, 30.79, 31.08, 31.37, 31.45, 31.76, 32.79, 33.1, 33.24, 33.19, 33.28, 33.1, 32.54, 33.07, 33.27, 35.12, 35.05, 36.23, 36.18, 36.37, 35.7, 35.9, 36.29, 38.12, 38.45, 38.31, 40.77, 40.46, 40.35, 41.25, 40.24, 39.95, 41.31000000000001, 41.26, 42.9, 43.42, 44.21000000000001, 43.72, 42.49, 41.46, 41.97999999999999, 43.84, 43.379999999999995, 44.71000000000001, 44.42, 45.0, 45.0, 45.2, 43.89, 45.24, 44.89, 44.22, 43.2, 45.7, 46.67, 46.29, 46.41, 47.06, 46.44, 47.46, 48.6, 49.73, 49.3, 49.67, 49.84000000000001, 47.79, 48.44, 48.14, 47.72, 48.19, 47.72, 47.85, 50.68, 49.86999999999999, 48.75000000000001, 47.77, 48.15, 48.28, 47.89, 46.56, 45.41, 46.32, 46.73, 47.03999999999999, 46.93, 49.0, 48.86, 51.03000000000001, 51.23, 50.95, 51.66, 52.029999999999994, 52.89, 52.24, 51.86, 52.0, 51.48, 52.62, 51.73, 51.24, 51.35, 50.31999999999999, 51.14, 51.4, 50.35, 49.71, 49.63, 49.79, 49.41, 50.15, 50.37, 50.49, 50.580000000000005, 49.93, 50.07, 50.49, 51.09, 51.25, 51.64, 53.44, 53.40999999999999, 53.5, 54.27, 55.31, 55.92, 55.35, 56.21000000000001, 56.53, 56.41, 57.72, 60.26, 60.39, 60.69, 60.45, 60.47, 60.78, 60.34, 61.699999999999996, 60.94, 62.66, 66.22, 66.48, 66.75, 65.53, 69.34, 71.6, 72.04, 74.77, 73.78, 70.65, 70.95, 69.88, 69.06, 68.75, 66.25, 64.43, 65.72, 67.53, 65.73, 64.97, 67.82, 69.58, 67.54, 68.45, 67.34, 66.71, 67.0, 69.91, 70.27, 71.24, 70.35, 70.49, 70.27, 66.68, 66.92, 66.31, 68.92, 67.3, 67.51, 67.22, 66.34, 68.2, 68.05, 68.98, 70.74, 73.98, 74.14, 73.67, 73.94, 73.92, 75.07, 75.09, 72.77, 71.62, 72.43, 69.69, 69.71, 71.41, 71.81, 72.34, 72.04, 70.1, 67.71, 65.32, 60.76, 61.29, 63.35, 65.22, 66.1, 66.97, 67.13, 66.14, 64.09, 65.26, 64.01, 64.21, 65.65, 65.11, 66.87, 67.22, 67.45, 65.75, 65.15, 66.82, 66.84, 70.14, 70.42, 70.15, 69.21, 66.63, 64.61, 64.49, 61.73, 62.72, 61.64, 60.99, 60.84, 60.88, 62.29, 64.58, 64.0, 63.05, 62.510000000000005, 60.63000000000001, 59.46, 59.84, 60.81, 60.48, 61.32000000000001, 62.88999999999999, 61.83, 59.45, 57.22, 57.67, 57.77, 57.04, 57.52, 59.41, 59.28, 59.51, 59.43, 60.43, 60.300000000000004, 59.14, 58.33, 59.37, 59.989999999999995, 59.34, 58.09, 57.55, 57.86, 58.83, 58.71, 56.98, 58.46, 57.970000000000006, 59.86, 60.91, 60.14, 60.77, 59.92, 60.559999999999995, 61.43, 61.28, 61.97, 62.16, 59.62, 59.38, 58.62, 58.6, 57.32, 56.77, 55.03, 54.35999999999999, 56.11, 52.75, 53.87, 53.05, 53.06, 54.47, 56.41, 55.71, 54.620000000000005, 55.91, 56.06999999999999, 55.25, 55.55, 55.34, 56.24, 58.37, 58.61, 59.27, 59.69, 58.33, 58.39999999999999, 59.09, 59.13, 57.23, 55.79, 55.35, 55.36, 57.089999999999996, 55.91, 58.15, 57.970000000000006, 57.08, 56.58, 54.56, 54.51, 54.11, 55.34, 56.95, 58.46, 59.65999999999999, 60.0, 61.0, 60.43, 60.54, 60.69, 60.51, 60.26, 62.33, 60.33, 59.47, 60.93, 60.18000000000001, 59.83, 58.75, 60.55, 61.45, 60.66, 62.269999999999996, 63.3, 62.95, 65.64, 65.34, 66.11, 65.35, 66.65, 62.93, 63.150000000000006, 62.8, 60.0, 62.02, 61.35, 62.15, 62.31, 60.6, 63.77, 66.08, 63.66, 64.4, 64.81, 63.69, 60.15, 60.95, 61.78, 62.45, 65.5, 64.73, 64.95, 64.27, 64.45, 62.769999999999996, 62.81, 63.16, 62.1, 63.25, 63.4, 63.87, 62.25, 62.16, 61.29, 60.79, 61.35, 61.26, 61.92, 61.20000000000001, 61.64, 63.14, 63.04, 62.4, 61.15, 61.15, 60.33, 60.32, 60.60999999999999, 61.35, 60.09, 59.419999999999995, 59.0, 58.27, 57.15, 56.49, 56.4, 56.36, 55.45000000000001, 55.04999999999999, 54.25]\n"
     ]
    }
   ],
   "source": [
    "#make prediction based on the training data\n",
    "y_train_predict = model.predict(X)*max(price)\n",
    "y_train = [i*max(price) for i in y]\n",
    "print(y_train_predict,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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rbfeesj3OFQSuIUQfZovZJKqmqViLP6yU+4bCJt4I5VWixvI8boBKNcpROv3srvaz8SaDyj/5J+d8ry+prCwkFGjRnH55Zczfvx4zj///HggLSgo4I477uCEE07g5ZdfZuvWrZx++ulMnjyZE088Mb572fbt25kxYwZTp07ltttua3HvcePGAVbg/8lPfhJP1/nQQw/x4IMPUlxczCmnnMIpp5yyX90KCgq45ZZbmDZtGtOmTWPLFms3vCuuuIIf//jHnHLKKdxyyy089dRTXH/99QCUlpbyjW98gwkTJjBhwgQ+/fRTAJ599lmmTZvGxIkT+f73v39IX0T2JYFbCNGnbSqtI9Pmo1SnEjHcsOW9w76nGdWETU1SuClwZydbLe4ynUqkZg/j1VYedj5E5ns/POzn9VUbN25k3rx5rF69Gq/Xy6OPPho/53a7+fjjj7nooouYN28eDz30ECtWrODee+/l2muvBeBHP/oRP/jBD1i2bBm5ubmtPuOJJ55g+/btrFy5ktWrV3PJJZdwww030L9/fxYuXMjChQtbLef1elm6dCnXX389N954Y/z4pk2bWLBgAX/6059aXH/DDTdw8skns2rVKr744gvGjh3L+vXreemll/jkk0/48ssvsdlsPPfcc4f7a5N13EKIvisQNllaWMnPU8KU1qURTcuh364lnXJfRZTEcEU8cDvtVjuojBTs/nJm275oKuCrhMT0w35ul/nvrbDnq869Z+4xcEbb4795eXnxlJmXXnopDz74ID/5yU8AuPDCCwGor6/n008/5YILLoiXCwaDAHzyySe88sorAHznO9/hlltu2e8ZCxYs4JprrsFut8JdenrH/h4a04JefPHF3HTTTfHjF1xwATbb/pv4fPDBB/zzn1bvis1mIyUlhWeeeYYVK1bE91f3+/3xpCmHQwK3EKLPKqryEYpEyXb4WK+TIHEY/UpegagJxqHvoBYIm6TQgE1H4mPcM4dmAlCsMzEw+Y5jITTOgyvfBPnTD/d1+pwDpd6EpvSb0WiU1NRUvvyy9SGOfe+xr9bSdR5s3VqrV0dorbn88su5++67D/r5bZHALYTos+oC1j7liWYdNeQQcg+GiB+qCiFj6AHL/f3j7WzcU8fvzx/f6nl/uNm4eUKa9cNp494LJvCv+esBSNfVPBM5je/YF0D55iM7cLfTMu4qO3fu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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig2 = plt.figure(figsize=(8,5))\n",
    "plt.plot(y_train,label='real price')\n",
    "plt.plot(y_train_predict,label='predict price')\n",
    "plt.title('close price')\n",
    "plt.xlabel('time')\n",
    "plt.ylabel('price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "#有的小伙伴训练一次以后发现预测出来的结果不理想，很可能是模型进行初始化的时候选取的随机系数不合适，导致梯度下降搜索时遇到了局部极小值\n",
    "#解决办法：尝试再次建立模型并训练\n",
    "#多层感知机结构在进行模型求解时，会给定一组随机的初始化权重系数，这种情况是正常的。通常我们可以观察损失函数是否在变小来发现模型求解是否正常"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(174, 8, 1) 174\n"
     ]
    }
   ],
   "source": [
    "data_test = pd.read_csv('zgpa_test.csv')\n",
    "data_test.head()\n",
    "price_test = data_test.loc[:,'close']\n",
    "price_test.head()\n",
    "price_test_norm = price_test/max(price)\n",
    "#extract X_test and y_test\n",
    "X_test_norm, y_test_norm = extract_data(price_test_norm,time_step)\n",
    "print(X_test_norm.shape,len(y_test_norm))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "#make prediction based on the test data\n",
    "y_test_predict = model.predict(X_test_norm)*max(price)\n",
    "y_test = [i*max(price) for i in y_test_norm]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig3 = plt.figure(figsize=(8,5))\n",
    "plt.plot(y_test,label='real price_test')\n",
    "plt.plot(y_test_predict,label='predict price_test')\n",
    "plt.title('close price')\n",
    "plt.xlabel('time')\n",
    "plt.ylabel('price')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(174, 1) (174, 1)\n",
      "(174, 2)\n"
     ]
    }
   ],
   "source": [
    "result_y_test = np.array(y_test).reshape(-1,1)\n",
    "result_y_test_predict = y_test_predict\n",
    "print(result_y_test.shape,result_y_test_predict.shape)\n",
    "result = np.concatenate((result_y_test,result_y_test_predict),axis=1)\n",
    "print(result.shape)\n",
    "result = pd.DataFrame(result,columns=['real_price_test','predict_price_test'])\n",
    "result.to_csv('zgpa_predict_test.csv')"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "RNN预测股价实战summary：\n",
    "1、通过搭建RNN模型，实现了基于历史数据对次日股价的预测；\n",
    "2、熟悉了RNN模型的数据格式结构；\n",
    "3、掌握了数字序列的数据预处理方法；\n",
    "4、实现了预测数据存储，通过可视化局部细节了解了RNN用于股价预测的局限性：信息延迟\n",
    "5、RNN模型参考资料：https://keras.io/layers/recurrent/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
